home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Windows Expert
/
Windows Expert.iso
/
windownt
/
spic52.zip
/
DISK1
/
32SINST.MST
< prev
next >
Wrap
Text File
|
1993-04-10
|
9KB
|
355 lines
'**************************************************************************
'* Nutmeg32 setup
'**************************************************************************
'' $DEFINE DEBUG ''Define for script development/debugging
'$INCLUDE 'setupapi.inc'
'$INCLUDE 'msdetect.inc'
''Dialog ID's
CONST WELCOME = 100
CONST ASKQUIT = 200
CONST DESTPATH = 300
CONST EXITFAILURE = 400
CONST EXITQUIT = 600
CONST EXITSUCCESS = 700
CONST OPTIONS = 800
CONST BADPATH = 6400
CONST HELPWELCOME = 1000
CONST VERPATH = 1100
CONST EXITFAILNOTWIN31 = 1200
CONST EXITFAILNOTENH = 1300
CONST NUTMEG32INST = 1400
CONST NUTMEG32PATH = 1500
CONST HELPNUTMEG32 = 1600
CONST EXITSUCCESS_NT = 1700
CONST ASKQUIT_NT = 2000
CONST WELCOME_NT = 2200
CONST EXITQUIT_NT = 2300
CONST HELPWELCOME_NT = 2400
''Bitmap ID
CONST LOGO = 1
GLOBAL DESTSYS$ ''Windows\System directory.
GLOBAL DEST32S$ ''Windows\System\Win32s directory
GLOBAL DESTNUTMEG$ ''Nutmeg32 directory
GLOBAL OS$ ''Operating System
DECLARE SUB Install
DECLARE SUB UpdateSystemIni
DECLARE SUB RebootSystem
DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
DECLARE FUNCTION MakeSystemIni LIB "INIUPD.DLL" (arg1$, arg2$) AS INTEGER
DECLARE FUNCTION RestartWindows LIB "INIUPD.DLL" (arg1$) AS INTEGER
INIT:
CUIDLL$ = "mscuistf.dll" ''Custom user interface dll
HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
SetBitmap CUIDLL$, LOGO
SetTitle " Win32s / Nutmeg32 Setup Program"
szInf$ = GetSymbolValue("STF_SRCINFPATH")
IF szInf$ = "" THEN
szInf$ = GetSymbolValue("STF_CWDDIR") + "nutmeg32.inf"
END IF
ReadInfFile szInf$
DESTSYS$ = GetWindowsSysDir()
DEST32S$ = DESTSYS + "WIN32S\"
'$IFDEF DEBUG
i% = SetSizeCheckMode(scmOnIgnore) '' could use scmOff; def = scmOnFatal
WinDrive$ = MID$(GetWindowsDir, 1, 1)
IF IsDriveValid(WinDrive$) = 0 THEN
i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
GOTO QUIT
END IF
'$ENDIF ''DEBUG
CHECK:
OS$ = "Operating system: " + ENVIRON$("OS")
IF ENVIRON$("OS") = "Windows NT" THEN
i% = DoMsgBox("Windows NT", "Environment", MB_TASKMODAL+MB_ICONINFORMATION+MB_OK)
NT = 1
ExitCode% = EXITSUCCESSNT
GOTO NT
END IF
IF ENVIRON$("OS") = "Windows_NT" THEN
i% = DoMsgBox("Windows NT", "Environment", MB_TASKMODAL+MB_ICONINFORMATION+MB_OK)
NT = 1
ExitCode% = EXITSUCCESSNT
GOTO NT
END IF
IF GetWindowsMajorVersion < 3 THEN
ExitCode% = EXITFAILNOTWIN31
GOTO QUIT
END IF
IF GetWindowsMajorVersion = 3 AND GetWindowsMinorVersion < 1 THEN
ExitCode% = EXITFAILNOTWIN31
GOTO QUIT
END IF
IF GetWindowsMode < 2 THEN '' Not Enhanced or Windows NT
ExitCode% = EXITFAILNOTENH
GOTO QUIT
END IF
NT = 0
ExitCode% = EXITSUCCESS
NT:
WELCOME:
IF NT = 1 THEN
sz$ = UIStartDlg(CUIDLL$, WELCOME_NT, "FInfoDlgProc", HELPWELCOME_NT, HELPPROC$)
END IF
IF NT = 0 THEN
sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", HELPWELCOME, HELPPROC$)
END IF
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOSUB ASKQUIT
GOTO WELCOME
END IF
IF NT = 1 THEN
GOTO NUTMEG32
END IF
GETWIN32SPATH:
SetSymbolValue "EditTextIn", DESTSYS$
SetSymbolValue "EditFocus", "END"
GETPATHL1:
sz$ = UIStartDlg(CUIDLL$, VERPATH, "FDispDlgProc", HELPWELCOME, HELPPROC$)
IF sz$ = "CONTINUE" THEN
IF IsDirWritable(DESTSYS$) = 0 THEN
GOSUB BADPATH
GOTO GETPATHL1
END IF
UIPop 1
ELSEIF sz$ = "REACTIVATE" THEN
GOTO GETPATHL1
ELSEIF sz$ = "BACK" THEN
UIPop 1
GOTO WELCOME
ELSE
GOSUB ASKQUIT
GOTO GETPATHL1
END IF
COPYFILES:
CreateDir DEST32S$, cmoNone
OpenLogFile MakePath(DEST32S$, "W32SSET.LOG"), 0
Install
UpdateSystemIni
CloseLogFile
NUTMEG32:
IF NT = 0 THEN
sz$ = UIStartDlg(CUIDLL$, NUTMEG32INST, "FInfoDlgProc",0, "")
IF sz$ = "CONTINUE" THEN
UIPop 1
ELSE
GOTO QUIT
END IF
END IF
GETFREEPATH:
DESTNUTMEG$ = MID$(DESTSYS$,1,3) + "WIN32APP\NUTMEG32\"
SetSymbolValue "EditTextIn", DESTNUTMEG$
SetSymbolValue "EditFocus", "END"
GETFREEPATHL1:
sz$ = UIStartDlg(CUIDLL$, NUTMEG32PATH, "FEditDlgProc", HELPNUTMEG32, HELPPROC$)
IF sz$ = "CONTINUE" THEN
DESTNUTMEG$ = GetSymbolValue("EditTextOut")
''Validate new path.
IF IsDirWritable(DESTNUTMEG$) = 0 THEN
GOSUB BADPATH
GOTO GETFREEPATHL1
END IF
UIPop 1
GOTO COPYNUTMEG32
ELSEIF sz$ = "REACTIVATE" THEN
GOTO GETFREEPATHL1
ELSEIF sz$ = "EXIT" THEN
UIPop 1
GOTO QUIT
END IF
COPYNUTMEG32:
ClearCopyList
CreateDir DESTNUTMEG$, cmoNone
IF NT = 0 THEN
OpenLogFile MakePath(DEST32S$, "SETUP.LOG"), 0
END IF
SrcDir$ = GetSymbolValue("STF_SRCDIR")
IF NT = 0 THEN
WriteToLogFile ""
WriteToLogFile " User chose as destination directory: '" + DESTNUTMEG$ + "'"
WriteToLogFile ""
WriteToLogFile "May have had to create the directory: " + DESTNUTMEG$
WriteToLogFile ""
END IF
AddSectionFilesToCopyList "Win32appNutmeg32", SrcDir$, DESTNUTMEG$
CopyFilesInCopyList
CreateProgmanGroup "WeBeWare's Nutmeg & Spice", "", cmoNone
ShowProgmanGroup "WeBeWare's Nutmeg & Spice", 1, cmoNone
CreateProgmanItem "WeBeWare's Nutmeg & Spice", "Nutmeg32", DESTNUTMEG$ + "NUTMEG32.EXE", "", cmoOverwrite
CreateProgmanItem "WeBeWare's Nutmeg & Spice", "Spice32", DESTNUTMEG$ + "SPICE32.EXE", "", cmoOverwrite
CreateProgmanItem "WeBeWare's Nutmeg & Spice", "Readme.1st", "NOTEPAD.EXE " + DESTNUTMEG$ + "readme.1st", "", cmoOverwrite
CreateProgmanItem "WeBeWare's Nutmeg & Spice", "Readme.txt", "NOTEPAD.EXE " + DESTNUTMEG$ + "readme.txt", "", cmoOverwrite
IF NT = 0 THEN
CloseLogFile
END IF
QUIT:
ON ERROR GOTO ERRQUIT
IF ERR = 0 THEN
dlg% = ExitCode%
ELSEIF ERR = STFQUIT THEN
IF NT = 1 THEN
dlg% = EXITQUIT_NT
ELSE
dlg% = EXITQUIT
END IF
ELSE
dlg% = EXITFAILURE
END IF
QUITL1:
sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO QUITL1
END IF
UIPop 1
IF NT = 0 THEN
RebootSystem
END IF
END
ERRQUIT:
i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
END
BADPATH:
sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
IF sz$ = "REACTIVATE" THEN
GOTO BADPATH
END IF
UIPop 1
RETURN
ASKQUIT:
IF NT = 1 THEN
sz$ = UIStartDlg(CUIDLL$, ASKQUIT_NT, "FQuitDlgProc", 0, "")
END IF
IF NT = 0 THEN
sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
END IF
IF sz$ = "EXIT" THEN
UIPopAll
ERROR STFQUIT
ELSEIF sz$ = "REACTIVATE" THEN
GOTO ASKQUIT
ELSE
UIPop 1
END IF
RETURN
'**
'** Purpose:
'** Builds the copy list and performs all installation operations.
'** Arguments:
'** none.
'** Returns:
'** none.
'*************************************************************************
SUB Install STATIC
SrcDir$ = GetSymbolValue("STF_SRCDIR")
IF NT = 0 THEN
WriteToLogFile ""
WriteToLogFile " User chose as destination directory: '" + DESTSYS$ + "'"
WriteToLogFile ""
WriteToLogFile "May have had to create the directory: " + DESTSYS$
WriteToLogFile ""
END IF
AddSectionFilesToCopyList "WindowsSystem", SrcDir$, DESTSYS$
AddSectionFilesToCopyList "WindowsSystemWin32s", SrcDir$, DESTSYS$ + "WIN32S\"
t% = RestartWindows( GetWindowsSysDir() + "OLECLI.DLL" )
SetRestartDir GetWindowsDir()
CopyFilesInCopyList
END SUB
SUB UpdateSystemIni STATIC
VxDPath$ = DEST32S$ + "W32S.386"
SystemIniPath$ = GetWindowsDir()
t% = MakeSystemIni(SystemIniPath$, VxdPath$)
END SUB
SUB RebootSystem STATIC
i% = RestartListEmpty()
i% = ExitExecRestart()
END SUB
'**
'** Purpose:
'** Appends a file name to the end of a directory path,
'** inserting a backslash character as needed.
'** Arguments:
'** szDir$ - full directory path (with optional ending "\")
'** szFile$ - filename to append to directory
'** Returns:
'** Resulting fully qualified path name.
'*************************************************************************
FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
IF szDir$ = "" THEN
MakePath = szFile$
ELSEIF szFile$ = "" THEN
MakePath = szDir$
ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
MakePath = szDir$ + szFile$
ELSE
MakePath = szDir$ + "\" + szFile$
END IF
END FUNCTION